package car;
/**
 * 交通管理机构角度的汽车类 - 关注监管、违章、安全
 */
public class management {
    // 数据域
    String licensePlate;        // 车牌号
    String ownerName;          // 车主姓名
    String vehicleType;        // 车辆类型
    boolean isRegistered;      // 是否注册
    int violationCount;        // 违章次数
    double totalFines;         // 总罚款金额
    
    // 构造方法
    public management() {
    }
    
    // 监管相关方法
    /**
     * 车辆注册
     */
    public boolean registerVehicle() {
        isRegistered = true;
        System.out.println("车辆注册成功：" + licensePlate);
        return true;
    }
    
    /**
     * 记录违章
     */
    public void recordViolation(String violationType, double fineAmount) {
        violationCount++;
        totalFines += fineAmount;
        System.out.println("违章记录：车牌 " + licensePlate + " - " + violationType);
        System.out.println("罚款金额：" + fineAmount + " 元，累计违章：" + violationCount + " 次");
    }
    
    /**
     * 清除违章记录（缴纳罚款后）
     */
    public void clearViolations() {
        if (totalFines == 0) {
            violationCount = 0;
            System.out.println("违章记录已清除：" + licensePlate);
        } else {
            System.out.println("请先缴纳所有罚款");
        }
    }
    
    /**
     * 生成交通报告
     */
    public void generateTrafficReport() {
        System.out.println("车牌号码：" + licensePlate);
        System.out.println("车主姓名：" + ownerName);
        System.out.println("车辆类型：" + vehicleType);
        System.out.println("注册状态：" + (isRegistered ? "已注册" : "未注册"));
        System.out.println("违章次数：" + violationCount);
        System.out.println("未缴罚款：" + totalFines + " 元");
    }
    
    // Getter和Setter方法

    public String getLicensePlate() { 
        return licensePlate; 
    }

    public String getOwnerName() { 
        return ownerName; 
    }

    public int getViolationCount() { 
        return violationCount; 
    }

    public double getTotalFines() { 
        return totalFines; 
    }

    public boolean isRegistered() { 
        return isRegistered; 
    }
}